package mop

str="hello"
//动态输出方法名
method='toUpperCase'
//getMetaMethod : 获取方法
def methodOfStr = str.metaClass.getMetaMethod(method)
//调用方法
println methodOfStr.invoke(str)  //HELLO
//获取方法列表,使用String和实例str没区别,元数据都相同
println String.metaClass.getMetaMethods().each {
    println it.name
}
//获取静态方法
println String.metaClass.getStaticMetaMethod("join",'12')
//检查方法是否存在,必须传调用的实例
println String.metaClass.respondsTo(null,"toUpperCase") //没有返回[]
//获取属性
println String.metaClass.getProperty(str,"class")
//属性是否存在
println String.metaClass.hasProperty("class")?true:false //groovy会自动判断,不必显式>0或者==null
